package com.dj.mingkong.admin.biz.service.music;


import com.dj.mingkong.admin.biz.controller.music.vo.request.TypeAddVo;
import com.dj.mingkong.admin.biz.controller.music.vo.request.TypeQueryVo;
import com.dj.mingkong.admin.biz.controller.music.vo.request.TypeUpdateVo;
import com.dj.mingkong.admin.biz.controller.music.vo.response.TypeVo;
import com.dj.mingkong.common.infrastructure.base.dto.delete.DeleteVo;
import com.dj.mingkong.common.infrastructure.base.dto.page.PageVo;

import java.util.List;

/**
 * 音乐类型服务接口
 *
 * @author zenglonghui
 * @date: 2022/7/20 16:32
 */
public interface TypeService {
    /**
     * 保存音乐类型
     *
     * @param addVo {}
     */
    void insert(TypeAddVo addVo);

    /**
     * 音乐类型修改
     *
     * @param updateVo {}
     */
    void updateById(TypeUpdateVo updateVo);

    /**
     * 音乐类型删除
     *
     * @param deleteVo {}
     */
    void deleteById(DeleteVo deleteVo);

    /**
     * 分页获取音乐类型列表
     *
     * @param queryVo {}
     * @return TypeVo
     */
    PageVo<TypeVo> pageByVo(TypeQueryVo queryVo);

    /**
     * 获取父类型列表
     *
     * @return List<TypeVo>
     */
    List<TypeVo> getParentList();

    /**
     * 获取树形结构音乐标签
     *
     * @return List<TypeVo>
     */
    List<TypeVo> listTree();

    /**
     * 获取所有音乐标签
     *
     * @return List<TypeVo>
     */
    List<TypeVo> listAll();
}
